package top.zhangjianyong.blog.entity.dto;

import java.util.ArrayList;
import java.util.List;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import top.zhangjianyong.blog.entity.po.BlogComment;

/**
 * 博客评论树形DTO
 *
 * @author zhangjianyong
 * @since 2024/12/19
 */
@Getter
@Setter
@Accessors(chain = true)
public class BlogCommentTreeDTO extends BlogComment {

  /** 子评论列表 */
  private List<BlogCommentTreeDTO> children = new ArrayList<>();

  /** 是否展开子评论 */
  private Boolean expanded = false;

  /** 子评论总数（用于分页显示） */
  private Long childrenTotal = 0L;

  /** 是否还有更多子评论 */
  private Boolean hasMore = false;

  /** 博客标题 */
  private String blogTitle;

  /** 格式化的创建时间 */
  private String createTimeFormat;

  /** 相对时间（如：3分钟前） */
  private String relativeTime;

  /** 是否已点赞（前端状态） */
  private Boolean isLiked = false;

  /** 是否可以回复（权限控制） */
  private Boolean canReply = true;

  /** 是否可以删除（权限控制） */
  private Boolean canDelete = false;

  /** 头像URL（如果有用户系统） */
  private String avatarUrl;

  /** 用户等级（如果有等级系统） */
  private Integer userLevel;

  /** 设备信息（解析user_agent得到） */
  private String deviceInfo;

  /** 地理位置（根据IP解析，可选） */
  private String location;

  /** 是否有新回复（待审核的回复） */
  private Integer reply;
}
